package weibo

import (
	"github.com/crozz-net/gopenapi/request"
	"github.com/crozz-net/gopenapi/weibo/model/short_url"
	"net/url"
)

type api_short_url struct {
	client_id string
	Share     api_short_url_share
	Comment api_short_url_comment
}

/**
 * 将一个或多个长链接转换成短链接<br/>
 * http://open.weibo.com/wiki/2/short_url/shorten
 *
 * @param url_long     需要转换的长链接，需要URLencoded，最多不超过20个
 * @param source       采用OAuth授权方式不需要此参数，其他授权方式为必填参数，数值为应用的AppKey。
 * @param access_token 采用OAuth授权方式为必填参数，其他授权方式不需要此参数，OAuth授权后获得。
 */
func (this *api_short_url) Shorten(source, access_token string, url_long []string) (*short_url.Resp_shorten, error) {
	param := url.Values{}
	param.Add("source", source)
	param.Add("access_token", access_token)
	for _, v := range url_long {
		param.Add("url_long", v)
	}

	obj := &short_url.Resp_shorten{}
	err := request.HttpGetAsObj(BASE_URL+"short_url/shorten.json", param, obj)

	return obj, err
}

/**
 * 将一个或多个短链接还原成原始的长链接<br/>
 * http://open.weibo.com/wiki/2/short_url/expand
 *
 * @param url_short 需要还原的短链接，需要URLencoded，最多不超过20个
 */
func (this *api_short_url) Expand(source, access_token string, url_short []string) (*short_url.Resp_expand, error) {
	param := url.Values{}
	param.Add("source", source)
	param.Add("access_token", access_token)
	for _, v := range url_short {
		param.Add("url_short", v)
	}

	obj := &short_url.Resp_expand{}
	err := request.HttpGetAsObj(BASE_URL+"short_url/expand.json", param, obj)

	return obj, err
}
